package com.git.hui.yinshua.biz.rest.models.order.rsp;

import com.git.hui.yinshua.api.model.order.OrderTypeEnum;
import com.git.hui.yinshua.biz.rest.models.user.res.UserInfoDto;
import lombok.Data;

import java.util.List;

/**
 * @author YiHui
 * @date 2024/6/20
 */
@Data
public class OrderDto {
    /**
     * 订单id
     */
    private Long orderId;

    /**
     * 订单金额 -> 商品总金额 + 运费
     */
    private String orderAmount;

    /**
     * 订单原金额 -> 商品原价 + 运费
     */
    private String originalAmount;

    /**
     * 运费
     */
    private String shippingAmount;

    /**
     * 实际支付金额 -> 通常是等于orderAmount
     */
    private String payAmount;

    /**
     * 支付状态
     */
    private Integer payStatus;

    /**
     * 订单状态
     */
    private Integer orderStatus;

    /**
     * 下单时间
     */
    private Long orderTime;

    /**
     * 最后支付时间，超过这个时间会取消订单
     */
    private Long latestPayTime;

    /**
     * 支付时间
     */
    private Long paySuccessTime;

    /**
     * 发货时间
     */
    private Long deliveryTime;


    /**
     * 订单备注
     */
    private String remark;


    /**
     * 下单人信息
     */
    private UserInfoDto user;


    /**
     * 收货信息
     */
    private OrderReceiveDto receiveInfo;

    /**
     * 商品信息
     */
    private List<OrderItemDto> orderItemList;

    /**
     * 是否删除
     */
    private Integer deleted;

    /**
     * 创建时间
     */
    private Long createAt;

    /**
     * 更新时间
     */
    private Long updateAt;

    /**
     * 下载次数
     */
    private Integer downloadCnt;

    /**
     * 订单类型
     *
     * @see OrderTypeEnum#getType()
     */
    private Integer type;

    /**
     * 拼团单
     */
    private PtOrderDto ptOrder;

    /**
     * 支付信息
     */
    private PaymentDto payment;

    /**
     * 退款信息
     */
    private RefundDto refund;
}
